from django.shortcuts import render,redirect
from django.views import View
from django.http import JsonResponse
from .cartmanager import getCartManger
# Create your views here.
#购物车中对应的操作：增加商品、删除商品、增加商品数量、减少商品数量
class CartView(View):
    def post(self,request):
        #显示声明session已经被改变
        request.session.modified = True

        type = request.POST.get('type')
        if type == 'add':    #添加商品   商品详情页通过表单提交
            self.add(request)
            return redirect('/cart/cart.html')    #显示购物车
        elif type == 'delete':   #删除商品   在购物车页面通过ajax进行操作
            self.delete(request)
            return JsonResponse({'result':True})
        elif type == 'plus':   #增加商品数量   在购物车页面通过ajax进行操作
            self.plus(request)
            return JsonResponse({'result': True})
        elif type == 'minus':   #减少商品数量  在购物车页面通过ajax进行操作
            self.minus(request)
            return JsonResponse({'result': True})

    def add(self,request):
        cart_manager = getCartManger(request)
        cart_manager.add(**request.POST.dict())

    def delete(self,request):
        cart_manager = getCartManger(request)
        cart_manager.delete(**request.POST.dict())

    def plus(self,request):
        cart_manager = getCartManger(request)
        cart_manager.update(step=1,**request.POST.dict())

    def minus(self,request):
        cart_manager = getCartManger(request)
        cart_manager.update(step=-1, **request.POST.dict())

#显示购物车
class CartListView(View):
    def get(self,request):
        #获取所有购物车中的商品
        cart_manager = getCartManger(request)
        cart_items = cart_manager.queryAll()
        print(cart_items)
        return render(request,'cart.html',{'cartItems':cart_items})